﻿#pragma once

#include <QObject>
#include <QSettings>
#include "baseoption_global.h"
namespace CTPLogin
{
	class BASEOPTION_EXPORT AccountBase
	{
	public:
		explicit AccountBase(const QString &pSetingFile);
		~AccountBase();
		// 经纪公司代码
		void SetBrokerID(const QString &pVal);
		std::string GetBrokerID();

		void SetUserID(const QString &pVal);
		std::string GetUserID();

		void SetPassword(const QString &pVal);
		std::string GetPassword();

		// IP ： 端口
		void SetUrlList(const QStringList &pList);
		void GetUrlList(std::list<std::string> &outUrlList);
	protected:
		QSettings *m_setting; // 配置路径
	};
	// 行情账号
	class BASEOPTION_EXPORT MDAccount : public AccountBase
	{
	public:
		explicit MDAccount(const QString &pSetingFile);
	};

	// 交易账号
	class BASEOPTION_EXPORT TradeAccount : public AccountBase
	{
	public:
		explicit TradeAccount(const QString &pSetingFile);

		// 认证码
		void SetAuthCode(const QString &pVal);
		std::string GetAuthCode();

		// 用户端产品信息
		void SetProductInfo(const QString &pVal);
		std::string GetProductInfo();

		// App代码
		void SetAppID(const QString &pVal);
		std::string GetAppID();

		// 投资者代码
		void SetInvestorID(const QString &pVal);
		std::string GetInvestorID();
	};
}